#include "clientwidget.h"
#include "ui_clientwidget.h"
#include <QHostAddress>
#include <QDebug>

ClientWidget::ClientWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ClientWidget)
{
    ui->setupUi(this);
    setWindowTitle("客户端");
    tcpSocket = NULL;

    // 分配空间, 指定父对象
    tcpSocket = new QTcpSocket(this);

    connect(tcpSocket, &QTcpSocket::connected,
            [=]() {
                ui->textEditRead->setText("成功和服务器建立连接");
            }

            );
    // 处理接收数据
    connect(tcpSocket, &QTcpSocket::readyRead,
            [=]() {
                //ui->textEditRead->append("服务器: ");
                // 获取对方发送的数据
                QByteArray array = tcpSocket->readAll();
                // 显示在只读区
                ui->textEditRead->append(QString("服务器: ").append(array));
            }
            );

}

ClientWidget::~ClientWidget()
{
    delete ui;
}


// 连接服务器
void ClientWidget::on_buttonConnect_clicked()
{
    // 获取服务器ip和端口
    QString ip = ui->lineEditIP->text();
    qint16 port = ui->lineEditPort->text().toInt();

    // 主动和服务器建立连接
    tcpSocket->connectToHost(QHostAddress(ip), port);

}
// 发送按钮
void ClientWidget::on_buttonSend_clicked()
{
    // 获取编辑区文本内容
    QString str = ui->textEditWrite->toPlainText();
    // 发送数据
    tcpSocket->write(str.toUtf8().data());
    // 清空编辑区
    ui->textEditWrite->clear();
}
// 关闭按钮
void ClientWidget::on_bottonClose_clicked()
{
    // 主动和客户端断开连接
    tcpSocket->disconnectFromHost();
    // 关闭窗口
    this->close();
}
